package 所有的题类.ZA.链表;

import com.kiwi.nixu.common.LNode;

import java.util.Arrays;
import java.util.List;

public class 链表翻转无头结点 {

    public static void main(String[] args) {
        LNode lNode = arrayToLNode(Arrays.asList(1, 2, 3, 4, 5, 6));
        LNode lNode1 = rollingOver(lNode);
        forPrint(lNode1);
    }

    public static LNode arrayToLNode(List<Integer> list){
        LNode lNode = new LNode(list.get(0));
        LNode cur=lNode;
        for (int i = 1; i < list.size(); i++) {
            LNode tmp=new LNode(list.get(i));
            cur.next=tmp;
            cur=tmp;
        }
        return lNode;
    }

    public static LNode rollingOver(LNode lNode){
        LNode pre=null;
        LNode cur=lNode;
        while (cur != null) {
            LNode next=cur.next;
            cur.next=pre;
            pre=cur;
            cur=next;
        }
        return pre;
    }

    public static void forPrint(LNode lNode){
        while (lNode != null) {
            System.out.print(lNode.data +" ");
            lNode=lNode.next;
        }
    }
}
